Python键鼠控制之PyAutoGUI方法 | 您所在的位置:网站首页 › pyautogui 右键 浏览器 无效 › Python键鼠控制之PyAutoGUI方法 |
前言
PyAutoGUI 是一个 Python 库,用于在桌面应用程序中自动化鼠标和键盘操作。它提供了一组简单而强大的方法,使得开发者可以编写脚本来模拟用户的鼠标点击、键盘输入以及屏幕截图等操作。PyAutoGUI 可以用于自动化重复性任务、测试 GUI 应用程序、创建自定义的自动化工具等场景。 以下是 PyAutoGUI 的一些主要特点: 跨平台性:PyAutoGUI 可以在 Windows、macOS 和 Linux 上运行,并提供了一致的 API接口,使得开发者可以编写跨平台的自动化脚本。鼠标和键盘控制:PyAutoGUI 提供了丰富的方法来模拟鼠标移动、点击、拖拽以及键盘输入等操作,使得可以轻松地自动化各种基于 GUI的任务。屏幕信息和截图:PyAutoGUI 支持获取屏幕大小、鼠标位置等信息,并可以对屏幕进行截图、图像识别等操作,方便进行自动化任务的处理。灵活性和易用性:PyAutoGUI 的方法设计简单直观,使用起来非常方便,同时提供了一些参数来定制操作的行为,满足不同场景下的需求。PyAutoGUI官方文档 安装命令:pip install pyautogui 一、屏幕信息左上角的像素位于坐标 0, 0。如果屏幕的分辨率为 1920 x 1080,则右下角的像素将为 1919, 1079(因为坐标从 0 开始,而不是 1) 0,0 X increases --> +---------------------------+ | | Y increases | | | | 1920 x 1080 screen | | | | V | | | | +---------------------------+ 1919, 1079 import pyautogui # 获取屏幕尺寸(打印显示的是完整尺寸,操作时,从0开始) screen_size = pyautogui.size() print(screen_size) # 结果:Size(width=1920, height=1080) width, height = pyautogui.size() print(width, height) # 结果:1920 1080 # 获取鼠标当前位置 mouse_position = pyautogui.position() print(mouse_position) # 结果:Point(x=960, y=540) # 判断坐标是否在屏幕范围内(范围内) onScreen(x, y) onscreen = pyautogui.onScreen(100, 200) print(onscreen) # 结果:True # 判断坐标是否在屏幕范围内(范围外) onscreen = pyautogui.onScreen(100, 4000) print(onscreen) # 结果:False 二、鼠标操作 实时获取鼠标位置 import pyautogui print('Press Ctrl-C to quit.') try: while True: x, y = pyautogui.position() positionStr = 'X: ' + str(x).rjust(4) + ' Y: ' + str(y).rjust(4) print(positionStr, end='') print('\b' * len(positionStr), end='', flush=True) except KeyboardInterrupt: print('\n') 鼠标移动 import pyautogui # 将鼠标移动到屏幕坐标 (x=200, y=300) 的位置,移动过程耗时 1 秒钟 pyautogui.moveTo(200, 300, duration=1) # 相对于当前鼠标位置,向右移动 200 像素,向下移动 500 像素,移动过程耗时 1 秒钟 pyautogui.moveRel(200, 500, duration=1) # 相对于当前鼠标位置,向左移动 200 像素,向上移动 500 像素,移动过程耗时 1 秒钟 pyautogui.moveRel(-200, -500, duration=1) 鼠标点击click(x=None, y=None, button=‘left’, clicks=1, interval=0.0) 模拟鼠标单击操作。如果指定了 (x, y) 坐标,则会先将鼠标移动到该坐标,然后进行单击操作,默认使用左键单击。clicks 参数指定单击次数,interval 指定单击之间的间隔时间。 import pyautogui # 在屏幕坐标 (x=100, y=100) 的位置点击鼠标左键,点击过程耗时 1 秒钟 pyautogui.click(100, 100, duration=1) # 在屏幕坐标 (100, 100) 的位置点击鼠标左键两次 pyautogui.click(100, 100, clicks=2) # 在屏幕坐标 (100, 100) 的位置点击鼠标左键两次,且点击间隔时间为 3 秒钟 pyautogui.click(100, 100, clicks=2, interval=3) # 在屏幕坐标 (100, 100) 的位置点击鼠标左键,使用 button='left' 指定左键 pyautogui.click(100, 100, button='left') # 在屏幕坐标 (100, 200) 的位置点击鼠标右键,使用 button='right' 指定右键 pyautogui.click(100, 200, button='right') # 在屏幕坐标 (100, 300) 的位置点击鼠标中键,使用 button='middle' 指定中键 pyautogui.click(100, 300, button='middle') 鼠标双击doubleClick(x=None, y=None, button=‘left’, interval=0.0) 模拟鼠标双击操作,参数意义与 click() 方法类似。 import pyautogui # 在屏幕坐标 (100, 100) 处进行双击操作,使用的是鼠标左键 pyautogui.doubleClick(100, 100) # 在屏幕坐标 (100, 100) 处进行双击操作,使用的是鼠标右键 pyautogui.doubleClick(100, 100, button='right') # 在屏幕坐标 (100, 100) 处进行双击操作,使用的是鼠标中键 pyautogui.doubleClick(100, 100, button='middle') 鼠标按压释放 import pyautogui # 鼠标移动代码... # 模拟按下鼠标按钮,当前是左键。这个函数会让鼠标一直保持按下状态 pyautogui.mouseDown() # 释放之前按下的鼠标按钮,使其恢复弹起状态 pyautogui.mouseUp() 鼠标拖动 import pyautogui # 将鼠标光标从当前位置拖动到屏幕上的坐标 (95, 50) 的位置(默认使用左键进行拖动,可以使用参数 button='*' 进行修改) pyautogui.dragTo(95, 50, duration=1) # 将鼠标光标相对于当前位置向右拖动 500 像素,向下拖动 300 像素,拖动过程持续 1 秒钟 pyautogui.dragRel(500, 300, duration=1) # 将鼠标光标相对于当前位置向左拖动 500 像素,向上拖动 300 像素,拖动过程持续 1 秒钟 pyautogui.dragRel(-500, -300, duration=1) 鼠标滚动 import pyautogui # 鼠标移动代码... # 向上滚动1000个单位 pyautogui.scroll(1000) # 向下滚动1000个单位 pyautogui.scroll(-1000) 三、键盘操作键盘输入常用的方法: pyautogui.locateOnScreen() 是一个在屏幕上查找指定图片的方法。它会比较屏幕截图与给定图片的相似度,然后返回匹配成功的图片位置。你可以使用这个方法来定位屏幕上的特定图片。 图片尽量用系统自带的截图工具进行截图,其他截图工具,可能会导致识别不准,如识别有偏差请设置confidence参数 import pyautogui # 在屏幕上查找图像并获取位置信息,并设置匹配的置信度阈值为 0.9(取值范围为 0 到 1)confidence可选 location = pyautogui.locateOnScreen('CSDN.png', confidence=0.9) # 输出位置信息以及位置的左上角坐标 print(location, location[0], location.top) # 结果:Box(left=396, top=385, width=30, height=25) 396 385 # left=396 表示图像左边缘距离屏幕左侧有 396 个像素 # top=385 表示图像的顶部边缘距离屏幕顶部有 385 个像素 # 计算图像位置的中心点坐标 center = pyautogui.center(location) # 输出中心点坐标以及 x 坐标 print(center, center[0]) # 结果:Point(x=411, y=397) 411 # x=411 表示中心点的 x 坐标位于屏幕上的第 411 个像素位置当前有一个需求,需要在 CSDN 页面对10篇文章进行点赞,那我们应该如何实现这个功能了? 第一步,CSDN网站账号登录第二步,先使用系统工具截取点赞图标![]() 以上只是介绍了一些常用的方法,如想了解详细的使用方法,请查阅官方文档。 |
CopyRight 2018-2019 实验室设备网 版权所有 |